// Package commonError 定义系统中使用的错误代码常量
package commonError

// 错误代码范围定义
// 10000-19999: 通用错误代码
// 20000-29999: 用户认证相关错误代码
// 30000-39999: 数据库操作相关错误代码
// 40000-49999: 请求参数相关错误代码

// 通用错误代码 (10000-19999)
const (
	// 请求相关错误
	CodeBadRequest          = 10001 // 错误请求
	CodeNotFound            = 10002 // 资源未找到
	CodeMethodNotAllowed    = 10005 // 方法不允许
	CodeTooManyRequests     = 10006 // 请求过于频繁
	
	// 认证授权相关错误
	CodeUnauthorized        = 10004 // 未授权访问
	CodeForbidden           = 10007 // 禁止访问
	CodeTokenExpired        = 10008 // Token已过期
	CodeInvalidToken        = 10009 // 无效Token
	
	// 服务器内部错误
	CodeInternalError       = 10003 // 内部服务器错误
	CodeServiceUnavailable  = 10010 // 服务不可用
	CodeNotImplemented      = 10011 // 功能未实现
)

// 用户认证相关错误代码 (20000-29999)
const (
	// 用户账户相关
	CodeUserNotFound        = 20001 // 用户不存在
	CodeUserAlreadyExists   = 20002 // 用户已存在
	CodeInvalidCredentials  = 20003 // 用户名或密码错误
	CodeAccountDisabled     = 20004 // 账户已被禁用
	CodeAccountLocked       = 20005 // 账户已被锁定
	
	// 密码相关
	CodeWeakPassword        = 20010 // 密码强度不足
	CodePasswordExpired     = 20011 // 密码已过期
	
	// 角色权限相关
	CodeInsufficientPermissions = 20020 // 权限不足
	CodeRoleNotFound        = 20021 // 角色不存在
)

// 数据库操作相关错误代码 (30000-39999)
const (
	// 基础操作错误
	CodeDBConnectionFailed  = 30001 // 数据库连接失败
	CodeDBQueryFailed       = 30002 // 数据库查询失败
	CodeDBInsertFailed      = 30003 // 数据库插入失败
	CodeDBUpdateFailed      = 30004 // 数据库更新失败
	CodeDBDeleteFailed      = 30005 // 数据库删除失败
	
	// 特定查询错误
	CodeRecordNotFound      = 30010 // 记录未找到
	CodeDuplicateEntry      = 30011 // 记录重复
	
	// 事务相关
	CodeTransactionFailed   = 30020 // 事务执行失败
)

// 请求参数相关错误代码 (40000-49999)
const (
	// 参数验证错误
	CodeInvalidParameter    = 40001 // 参数无效
	CodeMissingParameter    = 40002 // 缺少必要参数
	CodeParameterOutOfRange = 40003 // 参数超出允许范围
	CodeInvalidFormat       = 40004 // 参数格式不正确
	
	// 特定字段验证错误
	CodeInvalidEmail        = 40010 // 邮箱格式不正确
	CodeInvalidPhone        = 40011 // 手机号码格式不正确
	CodeInvalidIDCard       = 40012 // 身份证号码格式不正确
)